Go是一個編譯語言,意思就是他不像Javascript、PHP一樣,按下執行時就馬上運行程式碼,必須先透過編譯器,將程式語言轉換成電腦看得懂的語言,才能夠執行程式;淺見的推論大概是因為它也是一種靜態強型別的語言,嚴格的規範變數的型態,對Coding 來說確實有不少的好處,程式碼也易於維護。
我們從官網提到的幾個特色來聊聊:
看的出來作者,在設計這套程式語言,盡量用一些較為簡單的詞句以及易懂的文字組合而成,我在思考什麼叫做Simple的時候,想到在學Java的時候,必須要Import一些函式庫,每句程式碼好像在比看誰的長,誰用的函示庫較多,但是Go更像是精簡版的Java,你可以很輕鬆的從github匯入套件。
我們也知道在維護程式碼的時候,時常會遇到大家的排版不一樣,GoLang解決了一些這樣子的問題,像是在每行程式碼結束時不需要再加上分號(;),還有大括號的位置也不能隨意地放置,官方也提供了fmt工具,讓你的程式碼看起來更簡潔,更容易閱讀。
目前對可靠的運行這方面還沒有太多的研究,但知道有越來越多的公司願意將既有的技術慢慢的轉移到Go上面來開發,外國有一個知名程式語言統計平台tiobe,針對我們在網路上常使用的語言做統計,透過搜尋引擎的結果下去做分析,在2016年中後有越來越多人的關注,我想可能有越來越多人在使用吧!在2017年參加ModernWeb開始聽到在台灣有部分的人開始推廣GoLang這套程式語言,甚至有許多nodejs的大神紛紛的向Go靠攏e.g. TJ Holowaychuk -Farewell Node.js 有興趣的可以點連結看看;但這也間接證明了GoLang的可靠度。
對於這方面自己還有些能力上的不足無法更深入地去探討,但也歡迎有經驗的朋友可以提供。
網路上有許多的文章,來解釋Go與其他的程式語言來作比較。在國外有間公司(Scaledrone),它是一間提供即時訊息推播的平台,處理每小數以萬計的訊息,這需要強大的server來提供服務,原本公司是使用Nodejs 來處理這些訊息,但後來轉到了Go,它們解釋Go傭有強大的平行處理的模式,減少了伺服器對記憶體的使用量,減少了它們的負擔,但它們最後也有建議,因為Nodejs本身就是JS語言對於Web Engineer來說,相對的好入手,網路上的資源也相較於Go豐富,如果屬於低用量的模式,也可以考慮Nodejs。這也說明了Go,對於Performance也不遜色於Nodejs。
Scaledrone 發表的文章,有興趣可以閱讀